<?php
class lib_group extends spModel{
	/**
	 * 获取用户列表
	 * Enter description here ...
	 * @param unknown_type $groupid
	 */
	function getGroups($groupid = NULL){
		$this->tbl_name='rc_groups';
		$this->pk='groupid';
		if(empty($groupid)) return $this-> findAll();
		else return $this-> findBy('groupid', $groupid);
	}
	
	/**
	 * 新增一个群组
	 * @param string $groupname 群组名称
	 * @param string $redirecturl 重定向URL，相对路径或完整网址均可
	 * @return int 成功新增则返回群组ID
	 */
	function addGroup($groupname,$redirecturl){
		$this->tbl_name='rc_groups';
		$this->pk='groupid';
		return $this->create(array('groupname'=>$groupname,'redirecturl'=>$redirecturl));
	}
	
	/**
	 * 删除一个群组
	 * 注意！该函数会连带将该群组下的权限清空！
	 * 注意！该函数亦会连带将该群组下的用户归属重置成 $to群组，导致无法登入系统
	 * 要使该部分用户恢复使用，您需要重新为他们划分群组
	 * @param int $groupid 要删除的群组ID
	 * @param int $to 删除的群组原有用户流向
	 * @return int 若数值大于0，则删除成功
	 */
	function deleteGroup($groupid,$to = 0){
		if(empty($groupid)) return FALSE;
		//删除权限条目
		$this -> tbl_name = 'rc_rights';
		$this -> pk = 'rightid';
		$this -> delete(array('groupid'=>$groupid));
		//更改用户归属
		$this -> tbl_name = 'rc_members';
		$this -> pk = 'ucid';
		$this -> update(array('groupid'=>$groupid), array('groupid'=>$to));
		//删除群组
		$this->tbl_name='rc_groups';
		$this->pk='groupid';
		return $this->deleteByPk($groupid);
	}
	
	/**
	 * 更改一个群组的属性
	 * @param int $groupid 群组ID
	 * @param string $groupname 需要修改成的群组名称
	 * @param string $redirecturl 需要修改成的群组登录重定向
	 */
	function editGroup($groupid,$groupname,$redirecturl){
		$this->tbl_name='rc_groups';
		$this->pk='groupid';
		return $this->update(array('groupid'=>$groupid), array('groupname'=>$groupname,'redirecturl'=>$redirecturl));
	}
}